
var newUser=0;
var newPostit=0;
var delePostit=0;
function DespachadorEventosDistribuido(){
    
    this.users = Array();
    this.colors = Array();
    this.userName = Array();
  
    this.getUsers = function(){
        return this.users;
    };
    this.getColors = function(){
        return this.colors;
    };
     this.getUserNames = function(){
        return this.userName;
    };
    
    this.setUserNames = function(userNames){
            this.userName = userNames;

    };
    this.setUsers = function(users){
            this.users = users;

    };
    this.setColors = function(colores){
        this.colors = colores;
    };
    
    
    this.encontrarColor=function(autor){

        var autorBusqueda=autor;
        for (i=0;i<this.users.length;i++){
//            alert(this.users[i]+" "+this.colors[i]);
            if(this.users[i]==autorBusqueda){
//                alert(autor+" encontrado "+this.colors[i]);
                return this.colors[i];
            }
                
        }
    }
    
}

//var serverDistr = 'http://192.168.231.95:8080/Dis/';
var serverDistr = '';
function getUsuariosLogueados(){
            
            
            $.post("UserServlet",{action:"getAllUsers",idProy:idProyActual},function(dato){
                //alert(dato);
                var usuarios = JSON.parse(dato);
                var users = new Array();
                var userNames = new Array();
                var colors = new Array();
                var cont = 0;

                for(var usuario in usuarios){
//                    alert(users[cont]+" "+colors[cont]);
                    userNames[cont] = usuarios[cont].username;
                    users[cont] =  usuarios[cont].id;
                    colors[cont] = usuarios[cont].color;
                    cont++;
                }
                distribuido.setUserNames(userNames);
                distribuido.setColors(colors);
                distribuido.setUsers(users);
                
            });
        }



function enviarAccionPostit(metodo,postitNuevo,area){
var objectToSet = new Object();
        objectToSet.idUsuario = postitNuevo.autor;
        objectToSet.idPostit = postitNuevo.id;
        objectToSet.titulo = postitNuevo.titulo;
        objectToSet.texto = postitNuevo.contenido;
        objectToSet.area=area;
        objectToSet.idProyecto=idProyActual;
var textJSON = JSON.stringify(objectToSet); 
$.post("PostitServlet", {metodo: "add",objeto: textJSON});}

function enviarAccion(metodo,postitNuevo, idArea){

      var objectToSet = new Object();
      if(metodo == 'add'){
        objectToSet.idUsuario = postitNuevo.autor;
        objectToSet.idPostit = postitNuevo.id;
        objectToSet.titulo = postitNuevo.titulo;
        objectToSet.texto = postitNuevo.contenido;
        objectToSet.area=idArea;
        objectToSet.idProyecto=idProyActual;
          
      }else if(metodo == 'delete'){
          objectToSet.idProyecto=idProyActual;
          objectToSet.idPostit = postitNuevo;          
          objectToSet.area = canvasActual.areaSeleccionada.id;
      }      
        
       var textJSON = JSON.stringify(objectToSet);
//       alert(textJSON);
       $.post(serverDistr+"PostitServlet", {objeto: textJSON, metodo: metodo});          
   }  

function enviarAccionUser(metodo){

 var objectToSet = new Object();
 
 if(metodo=='add'){
     objectToSet.idUsuario = user.id;
    objectToSet.nombreUsuario = user.username;
    objectToSet.idProyecto=idProyActual;
 }else if(metodo=='quit'){
     objectToSet.idUsuario = user.id;
    objectToSet.nombreUsuario = user.username;
    objectToSet.idProyecto=idProyActual;
 }
 
 var textJSON = JSON.stringify(objectToSet);
// alert(textJSON);
 $.post(serverDistr+"LogServlet", {objeto: textJSON, metodo: metodo},function(){
     getUsuariosLogueados();
 }); 
}
function timelogout(){
       setTimeout('enviarAccionUser(\'quit\')',60000);
   }

function setEstadoCliente(){
    var estadoSistemaToSet = new Object();
    estadoSistemaToSet.idUsuario = user.id;
    estadoSistemaToSet.idEstado = 0;
    estadoSistemaToSet.idProyecto = idProyActual;
    if(canvasActual.galeriaActiva)
        estadoSistemaToSet.idCanvas = canvas.areaSeleccionada.id;
    else
        estadoSistemaToSet.idCanvas = 10; 


    var textJSON = JSON.stringify(estadoSistemaToSet);
//    alert(textJSON);
    $.post(serverDistr+"ServletEstadoSistema", {estado:textJSON, funcion:"setEstado"});
}



function ComunicaDistribuido(){

    
    setTimeout("notificarLogin()",2000);
    setTimeout("notificarLogout()",1000);
    setTimeout("notificarAP()",1000);
    setTimeout("notificarBP()",1000);
//   setTimeout('actualizarDatosPostit()',1000);
    setTimeout("getUsuariosLogueados()",1000);
   // timelogout();
   
}

 function actualizarDatosPostit(){  
      var objectToSet = new Object();
      objectToSet.idProyecto = idProyActual;     
      var textJSON = JSON.stringify(objectToSet);
    $.post("PostitServlet", {metodo: "postitActuales",objeto: textJSON},
    function(data) {
        //$( "#result" ).empty().append(data);
       // postits = JSON.parse(data);
     alert(data);
    });
   setTimeout('actualizarDatosPostit()',5000);
}

//TACHI

function notificarBP(){
 $.post(serverDistr+"PostitServlet", {metodo: "notificarBP"}, function(data) {
     console.log(data);
    var postit = JSON.parse(data); 
    console.log(getIndxPostit(postit.idPostit, postit.area));
    if(delePostit != postit.idPostit && getIndxPostit(postit.idPostit, postit.area)!="no encontrado"){
       // alert(postit.area);
        delePostit = postit.idPostit;

      //  alert(postit.idPostit+" "+postit.area);
        var id = getIndxPostit(postit.idPostit, postit.area);
        
        
        var postits2=new Array();
        canvasActual.areas[postit.area].postits[id]=null;
        
//         canvasActual.postitActivo.$contenedor.remove();
//         canvasActual.postitActivo=null;
        for (var index in canvasActual.areas[postit.area].postits){
            if(canvasActual.areas[postit.area].postits[index]!=null){
                postits2.push(canvasActual.areas[postit.area].postits[index]);
//                postits2[index].id=postits2.length-1;
            }
             }
            canvasActual.areas[postit.area].postits= postits2;
            
        //$("#area-"+ id).append('<br><label>'+this.postits.length+'</label>'); 
        mostrarPostitsActuales(new Array('0','1','2','3','4','5','6','7','8'));
        limpiar();
        if(canvasActual.areaSeleccionada.postits.length>0){
                canvasActual.menus[0].$contenedor.remove();
                canvasActual.areaSeleccionada.carrusel();           
                canvasActual.menuActivo = null;
                canvasActual.galeriaActiva = true;
        }
        else{
            alert('Esta area no contiene postits');
            canvasActual.menus[0].$contenedor.remove();
            canvasActual.menuActivo = null;
            canvasActual.galeriaActiva = false;
        }
        var area;
        area[0] = canvasActual.areas[postit.area];
        notificacion.mostrarNotificacion(area);
    }
}
);

setTimeout('notificarBP()',1000);
}

function notificarAP(){
 $.post(serverDistr+"PostitServlet", {metodo: "notificarAP"}, function(data) { 
    var postitN = JSON.parse(data);
    if(postitN.area != null && getIndxPostit(postitN.idPostit, postitN.area)==="no encontrado"&&postitN.idPostit!=0){ 
        var postit = new Postit(postitN.idUsuario);
        postit.contenido = postitN.texto;
        postit.titulo = postitN.titulo;
        postit.id = postitN.idPostit;
        // alert(postit.autor+postit.contenido+postit.id+postit.titulo+postitJson.area);
        canvasActual.areas[postitN.area].postits.push(postit);
        mostrarPostitsActuales(new Array('0','1','2','3','4','5','6','7','8'));
        var area=new Array();
        //area[0] = canvasActual.areas[postitN.area];
        area.push(canvasActual.areas[postitN.area]);
        notificacion.mostrarNotificacion(area);
        
}


});
setTimeout('notificarAP()',1000);}

 function notificarLogin(){
 $.post(serverDistr+"LogServlet", {metodo: "login"}, function(data) {
    var dataN = JSON.parse(data);
        if(newUser != dataN.idUsuario){
            notificacion.mostrarNotificacion(canvasActual.areas);
            //notificacionLogin();
            newUser = dataN.idUsuario;

    }
}); 
    setTimeout('notificarLogin()',2000); 
} 

function notificarLogout(){ 
$.post(serverDistr+"LogServlet", {metodo: "logout"}, function(data) {  
    var dataN = JSON.parse(data);
    if(dataN.idUsuario){
//        alert(dataN.idUsuario);
        notificacion.mostrarNotificacion(canvasActual.areas);
    }
});
 setTimeout('notificarLogout()',1000); 
 }


//TACHI



function getEstadoCliente(){
    var id = user.id;
    $.post(serverDistr+"ServletEstadoSistema", {id:id, funcion:"getEstado"},function(data){
        var estadoSistema = JSON.parse(data);
        if(estadoSistema.idCanvas!=10){
            canvasActual.areaSeleccionada = canvasActual.areas[estadoSistema.idCanvas];
            if(canvasActual.areaSeleccionada.postits.length>0){
                canvasActual.areaSeleccionada.carrusel();           
                canvasActual.menuActivo = null;
                canvasActual.galeriaActiva = true;
            }
        }
        
    });


//    setTimeout("getEstadoCliente()",1000);
}
